// 属性装饰器也是一个函数，该函数需要两个参数：
// 1. 如果使静态属性, 则为类本身；如果使实例属性，则为类的原型
// 2. 固定为一个字符串，表示属性名
function d() {
  return function (target: any, key: string) {
    console.log(target === A.prototype, key);
    if (!target.__props) {
      target.__props = [];
    }
    target.__props.push(key);
  };
}

class A {
  @d()
  prop1: string;
  @d()
  static prop2: string;
}

const a = new A();
console.log((a as any).__props);

export {};
